home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1993 Michael D. Bayne.
- * All rights reserved.
- *
- * Please see the documentation accompanying the distribution for distribution and disclaimer information.
- */
-
- #include <exec/types.h>
- #include <exec/memory.h>
-
- #include <intuition/intuition.h>
- #include <intuition/screens.h>
-
- #include <libraries/gadtools.h>
- #include <dos/dos.h>
-
- #include <clib/exec_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/gadtools_protos.h>
-
- #include "Moire.h"
- #include "Moire_rev.h"
- #include "/defs.h"
-
- struct mPrefObject {
- LONG xSpeed, ySpeed, Trail, numLines, Cycle;
- };
-
- VOID blank( VOID );
-
- struct mPrefObject nP;
- STATIC const UBYTE VersTag[] = VERSTAG;
- extern struct Task **Task;
- extern ULONG Depth, Mode;
- extern UBYTE *prefData;
-
- VOID setMoirePrefs( VOID )
- {
- GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, nP.Trail, 0L );
- GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, nP.xSpeed, 0L );
- GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, nP.ySpeed, 0L );
- GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, nP.numLines, 0L );
- GT_SetGadgetAttrs( MoireGadgets[GD_CYCLE], MoireWnd, 0L, GTCY_Active, nP.Cycle, 0L );
- }
-
- int OKClicked( VOID )
- {
- CopyMem( &nP, prefData, sizeof( struct mPrefObject ));
- return( QUIT );
- }
-
- int TESTClicked( VOID )
- {
- *Task = FindTask( 0L );
- blank();
- return( CONTINUE );
- }
-
- int CANCELClicked( VOID )
- {
- return( QUIT );
- }
-
- int TRAILClicked( VOID )
- {
- nP.Trail = MoireMsg.Code;
- return( CONTINUE );
- }
-
- int CYCLEClicked( VOID )
- {
- nP.Cycle = MoireMsg.Code;
- return( CONTINUE );
- }
-
- int XSPEEDClicked( VOID )
- {
- nP.xSpeed = MoireMsg.Code;
- return( CONTINUE );
- }
-
- int YSPEEDClicked( VOID )
- {
- nP.ySpeed = MoireMsg.Code;
- return( CONTINUE );
- }
-
- int NUMLINClicked( VOID )
- {
- nP.numLines = MoireMsg.Code;
- return( CONTINUE );
- }
-
- int MoireVanillaKey( VOID )
- {
- switch( MoireMsg.Code ) {
- case 'o':
- return( OKClicked() );
- case 't':
- return( TESTClicked() );
- case 'c':
- return( CANCELClicked() );
- case 'r':
- GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, ++(nP.Trail) > 256 ?
- nP.Trail = 256 : nP.Trail, 0L );
- return( CONTINUE );
- case 'R':
- GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, --(nP.Trail) < 1 ?
- nP.Trail = 1 : nP.Trail , 0L );
- return( CONTINUE );
- case 'x':
- GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.xSpeed) > 64 ?
- nP.xSpeed = 64 : nP.xSpeed, 0L );
- return( CONTINUE );
- case 'X':
- GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, --(nP.xSpeed) < 1 ?
- nP.xSpeed = 1 : nP.xSpeed, 0L );
- return( CONTINUE );
- case 'y':
- GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 64 ?
- nP.ySpeed = 64 : nP.ySpeed, 0L );
- return( CONTINUE );
- case 'Y':
- GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 1 ?
- nP.ySpeed = 1 : nP.ySpeed, 0L );
- return( CONTINUE );
- case 'n':
- GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 32 ?
- nP.ySpeed = 32 : nP.ySpeed, 0L );
- return( CONTINUE );
- case 'N':
- GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 2 ?
- nP.ySpeed = 2 : nP.ySpeed, 0L );
- return( CONTINUE );
- default:
- return( CONTINUE );
- }
- }
-
- VOID prefs( LONG command )
- {
- switch( command ) {
- case STARTUP:
- CopyMem( prefData, &nP, sizeof( struct mPrefObject ));
- if( !SetupScreen() ) {
- if( !OpenMoireWindow()) setMoirePrefs();
- CloseDownScreen();
- }
- break;
- case IDCMP:
- if( HandleMoireIDCMP() != QUIT ) break;
- case KILL:
- CloseMoireWindow();
- }
- }
-
- LONG winSig( VOID )
- {
- return( MoireWnd ? 1L << MoireWnd->UserPort->mp_SigBit : 0L );
- }
-